<?php
/**
 * egpUsersAsyncUpdate.php
 * 
 * (C) 2009, tetsuya.odaka(EzoGP).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* 
 * EGP_USERSの更新をします。
 * 
 * author	; t.odaka
 * date		; 2009/5/27
 * 
 * 
*/
	// 前準備
	include("../Myznala/myHeader.inc.php");
	require_once("../Myznala/MyConverter.class.php");
	require_once('../Myznala/MyDBConnection.class.php');
	require('EgpusersDao.class.php');
	
	
	// パラメータをサニタイズして配列に入れる。
	$cObj = new MyConverter();
	$reqParm = $cObj->getRequestParameters();
	
	/*
	 * 入力エラーチェック；
	 * エラーがあれば、入力画面にもどします。	
	*/
	
	$cObj = new MyDBConnection();
	$conn = $cObj->getConnection(); // connection取得
	
	/* 
	 * 更新用データを作成します。 
	*/
	$egpObj = new EgpusersDao();
	
	$eMsg = validate($conn, &$reqParm, &$egpObj); // 入力チェック関数（内部関数）でエラーを取り出す
	// エラーありの場合
	if($eMsg != 'failure'){
		header("Content-Type:text/plain");
		echo($eMsg);
		return; 
	}

	// connectionのリリース
	$cObj->closeConnection($conn);
	
	/* 
	 * 登録用データを作成します。 
	*/
	$egpObj = new EgpusersDao();
	$conn = $cObj->getConnection(); // connection取得
	
	/*
	 * データにnull値があった場合にデフォルト値を設定し、
	 * データに入力があった場合にはサニタイズする。
	*/
	
	// ID 
	$egpObj->setId($reqParm['id']);
	
	// E-mail(必須入力)
	$egpObj->setEmail($reqParm['email']);
	
	// Password(必須入力)
	$egpObj->setPassword($reqParm['password']);

	// 名前（漢字）(必須入力)
	$egpObj->setName($reqParm['name']);
	
	// 名前（よみ）
	if($reqParm['nameyomi'] == null || $reqParm['nameyomi'] == ''){
		$reqParm['nameyomi'] = '未入力';
	}
	$egpObj->setNameYomi($reqParm['nameyomi']);

	// 役職
	$egpObj->setRole($reqParm['role']);

	/*
	 * DBを更新
	 */
	$conn->beginTransaction();
	$egpObj->update($conn);
	$conn->commit();
	
	// connectionのリリース
	$cObj->closeConnection($conn);

	$msg = 'success;データが更新されました.';
	header("Content-Type:text/plain");
	echo($msg);
		
	return;

	/*
	 * 入力チェックを行うための内部関数
	*/
	function validate($_conn, $_rParm, $_eObj){
		require_once('../Myznala/ErrorBean.class.php');
		// 入力必須チェック
		$_eMsg = 'failure';
		$i=0;
		
		/* パスワード */
		// 入力必須チェック
		if($_rParm['password'] == null || $_rParm['password'] == ''){
			// Asyncのエラーメッセージのために、入力フォームのidをキーに付けて返却.
			$_eMsg .= ';password:入力してください';
		}
		
		/* ユーザー名 */
		// 入力必須チェック
		if($_rParm['name'] == null || $_rParm['name'] == ''){
			// Asyncのエラーメッセージのために、入力フォームのidをキーに付けて返却.
			$_eMsg .= ';name:入力してください';
		}

		/* e-mail */
		// 入力必須チェック
//		if($_rParm['email'] == null || $_rParm['email'] == ''){
//			// Asyncのエラーメッセージのために、入力フォームのidをキーに付けて返却.
//			$_eMsg .= ';email:入力してください';
//		}else{
//			// ダブり入力チェック
//			$_ret = $_eObj->findEmail($_conn, $_rParm['email']);
//			if($_ret){
//				// Asyncのエラーメッセージのために、入力フォームのidをキーに付けて返却.
//				$_eMsg .= ';email:すでに登録されています';
//			}
//		}
		return $_eMsg;
	}

?>